8.1 Go与测试

Go的标准库提供了几个与测试有关的库,其中最主要的是 testing 包,本章介绍的绝大部分测试功能都来源于这个包。 net/http/httptest 包是另一个与Web应用编程有关的库,这个库是基于 testing 库实现的。正如它的名字所示, httptest 包是一个用于测试Web应用的库。

因为 testing 包提供了在Go中实现基本的自动测试的能力,所以本章会先介绍 testing 包,等读者了解了 testing 包之后,再学习 httptest 包就会有事半功倍的效果。

testing 包需要与 go test 命令以及源代码中所有以 _test.go 后缀结尾的测试文件一同使用。尽管Go并没有强制要求,但一般来说,测试文件的名字都会与被测试源码文件的名字相对应。

举个例子,对于源码文件 server.go ,我们可以创建出一个名为 server_test.go 的测试文件,这个测试文件包含我们想对 server.go 进行的所有测试。另外需要注意的一点是,被测试的源码文件和测试文件必须位于同一个包之内。

为了测试源代码,用户需要在测试文件中创建具有以下格式的测试函数,其中Xxx可以是任意英文字母以及数字的组合,但是首字符必须是大写的英文字母:

func TestXxx(*testing.T) { ... }

在测试函数的内部,用户可以使用 ErrorFail 等一系列方法表示测试失败。当用户在终端里面执行 go test 命令的时候,所有符合上述格式的测试函数就会被执行。如果一个测试在执行时没有出现任何失败,那么我们就说函数通过了测试。接下来,就让我们实际地学习如何使用 testing 包进行测试。

results matching ""

    No results matching ""